using System;

namespace LogicEngine
{
	/// <summary>
	/// 系统属性
	/// </summary>
	public interface ISystemProperty
	{
		/// <summary>
		/// 属性附加到某类spprites上面
		/// </summary>
		/// <param name="types">Types.</param>
		bool Attach(Common.Enum.SpriteType[] types);

		/// <summary>
		/// 属性附加到某些sprite上面
		/// </summary>
		/// <param name="entities">Entities.</param>
		bool Attach(Common.BaseEntity [] entities);
		/// <summary>
		/// 属性产生影响
		/// </summary>
		/// <param name="args">Arguments.</param>
		bool Affect(Object[] args);


		/// <summary>
		/// 对某些sprites解除属性的影响
		/// </summary>
		/// <param name="entities">Entities.</param>
		bool Detach(Common.BaseEntity[] entities);
	
		/// <summary>
		/// 属性从某类sprites移除
		/// </summary>
		/// <param name="types">Types.</param>
		bool Detach(Common.Enum.SpriteType[] types);
	}
}

